import java.util.HashMap;
import java.rmi.*;
import java.rmi.server.*;

public class Banque extends UnicastRemoteObject implements BanqueInterface{

	// Déclaration d'une liste de comptes propres à la banque
	private HashMap<String, Compte> listeComptes;

	public Banque() throws RemoteException {
		// Instanciation de la liste des comptes
		listeComptes = new HashMap<String, Compte>();
		System.out.println("Banque créée avec succès");
	}

	public Compte ouvrirCompte(String nom, String password) throws RemoteException {
		if (!listeComptes.containsKey(nom)) {
			// Création d'un compte si non-existant
			Compte compteBancaire = new Compte(nom, password);
			System.out.println("Compte créé avec les identifiants : " + nom + ", " + password + "\n");
			return compteBancaire;
		}
		else {
			System.out.println("Un compte déjà existant avec ces identifiants\n");
			return null;
		}
	}

	public boolean verifie(String nom) throws RemoteException {
		if (!listeComptes.containsKey(nom)) {
			// Cas d'un compte qui n'existe pas encore
			return false;
		}
		else {
			// Cas d'un compte qui existe
			return true;
		}
	}

	public int fermerCompte(String nom, String password) throws RemoteException {
		return 0;
	}

	public void deposer(double somme, Compte c) throws RemoteException {
		// Dépot d'argent sur le compte
		c.solde += somme;
	}

	public void retirer(double somme, Compte c) throws RemoteException {
		// Retrait d'argent sur le compte
		c.solde -= somme;
	}

	public double solde(Compte c) throws RemoteException {
		// Retour de la valeur du solde
		return c.solde;
	}
}
